package com.gl.glbooks.services;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.gl.glbooks.vos.Actividad;
import com.gl.glbooks.vos.Categoria;
import com.gl.glbooks.vos.Comentario;
import com.gl.glbooks.vos.Confirmacion;
import com.gl.glbooks.vos.Editorial;
import com.gl.glbooks.vos.Ejemplar;
import com.gl.glbooks.vos.Libro;
import com.gl.glbooks.vos.LibroDigital;
import com.gl.glbooks.vos.Oficina;
import com.gl.glbooks.vos.PalabraClave;
import com.gl.glbooks.vos.Prestamo;
import com.gl.glbooks.vos.Sugerencia;
import com.gl.glbooks.vos.SugerenciaPDFsubido;
import com.gl.glbooks.vos.Usuario;

import flex.messaging.io.ArrayList;


public class RestListarServices implements IRestListarServices {

	@Autowired
	IListarServices listarServices;
	
	@Autowired
	AuthenticationManager authenticationManager;
	
	@Override
	public Confirmacion encriptarContrasenias() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Actividad> listarActividadesEntreFechas(Date fechaDesde,
			Date fechaHasta) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Categoria> listarCategorias() {
		return listarServices.listarCategorias();
	}

	@Override
	public List<Comentario> listarComentarios() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Comentario> listarComentariosNovedosos(int cantidad) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Editorial> listarEditoriales() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Ejemplar> listarEjemplares() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Libro> listarLibros() {
		
		System.out.println("REST: listarLibros");
		
		List<Libro> libroList = listarServices.listarLibros();
		return libroList;
		
	}

	@Override
	public List<Libro> listarLibrosNovedosos(int cantidad) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Oficina> listarOficinas() {
		return listarServices.listarOficinas();
	}

	@Override
	public List<PalabraClave> listarPalabrasClaves() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Prestamo> listarPrestamos() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Prestamo> listarPrestamosPorFecha(Date fechaHasta) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Prestamo> listarPrestamosPorFechaMenor(Date time) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Sugerencia> listarSugerencias() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<SugerenciaPDFsubido> listarSugerenciasPDFsubido() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Usuario> listarUsuarios() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Usuario> listarUsuariosResponsables() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public boolean login(String username, String password) {
		
		boolean authenticated;
		try {
			Authentication authentication = new UsernamePasswordAuthenticationToken(
					username, password);
			authentication = authenticationManager.authenticate(authentication);
			authenticated = authentication.isAuthenticated();
		} catch (Exception e) {
			return false;
		}
		
		return authenticated;
	}

}
